package com.leo.base.exception.result.impl;

import com.leo.base.exception.result.IResultCode;
import lombok.ToString;

/**
 * @author wangss
 */
@ToString
public enum ResultCodeEnum implements IResultCode {

    /**
     * 成功
     */
    SUCCESS(true, 200, "操作成功"),
    /**
     * 失败
     */
    FAIL(false, 500, "操作失败"),
    /**
     * 没有信息
     */
    NO_PAGE(false, 404, "没有信息"),
    /**
     * 未知错误
     */
    UNKNOWN_ERROR(false, 999, "未知错误"),
    /**
     * 参数错误
     */
    PARAM_ERROR(false, 202, "参数错误"),
    /**
     * 没有权限
     */
    UN_AUTHORISE(false, 510, "没有权限"),
    /**
     * 自定义异常
     */
    CUSTOM_ERROR(false, 888, "程序出错了"),
    /**
     * 空指针异常
     */
    NULL_POINT(false, 880, "空指针异常");

    /**
     * 响应是否成功
     */
    private Boolean success;
    /**
     * 响应状态码
     */
    private Integer code;
    /**
     * 响应信息
     */
    private String message;

    ResultCodeEnum(Boolean success, Integer code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    @Override
    public boolean success() {
        return success;
    }

    @Override
    public Integer code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }
}
